# coding: utf-8

from functools import total_ordering

@total_ordering
class Fluent(object):
    def __init__(self, prop, start, end):
        self.prop = prop
        self.start = start
        self.end = end
    
    def __lt__(self, other):
        return ((self.end, self.start, self.prop) <
                (other.end, other.start, other.prop))
                
    def __str__(self):
        return '(%s %s %s)' % (self.prop, self.start, self.end)
                                               
    def __repr__(self):
        return '<Fluent %s>' % self
